package com.suray.wcs.service.pojo;

import com.suray.basic.wcs.path.core.Node;
import com.suray.basic.wcs.path.enums.DirectionStatus;
import com.suray.wcs.res.enums.PalletStatus;
import com.suray.wcs.res.enums.RgvStatus;
import com.suray.wcs.service.system.entity.ScadaDB;
import lombok.Data;

@Data
public class RgvInfoSingle {
    /**
     * 小车当前位置
     */
    private Node locationNode;
    /**
     * 小车是否载重, 详见{@link PalletStatus}
     */
    protected PalletStatus palletStatus;
    /**
     * 小车状态, 详见{@link RgvStatus}WCS自身状态
     */
    protected RgvStatus rgvStatus = RgvStatus.OFF_LINE;
    /**
     * 小车行驶方向
     */
    protected Integer direction;
    /**
     * 小车的编号
     */
    private Integer rgvNo;
    /**
     * 小车当前位置（前端显示用）
     */
    protected String curLocationStr;
    /**
     * 故障描述
     */
    protected String errorMessage;

    /**
     * 状态描述
     */
    protected String statusDescription;
    /**
     * 小车当前位置
     */
    private String location;
    /**
     * 小车专用充电桩位置
     */
    private String chargeLocation;
    /**
     * 电池剩余量(百分制)
     */
    protected Integer battery;
    /**
     * 小车扫到的码
     */
    protected String groundCode;
    /**
     * 开启自动充电模式
     */
    private Boolean isAutoCharge;
    /**
     * 小车当前任务Id
     */
    protected Integer curTaskId;
    /**
     * 1方向障碍物感知
     * 0:正常; 1:有障碍物 2:未开启
     */
    protected Integer barrierAtOne;
    /**
     * 2方向障碍物感知
     * 0:正常; 1:有障碍物 2:未开启
     */
    protected Integer barrierAtTwo;
    /**
     * 3方向障碍物感知
     * 0:正常; 1:有障碍物 2:未开启
     */
    protected Integer barrierAtThree;
    /**
     * 4方向障碍物感知
     * 0:正常; 1:有障碍物 2:未开启
     */
    protected Integer barrierAtFour;
    /**
     * 是否有托盘（顶部）
     * 1.有货,标准位置2.无货3.有货但未校准4.异常 5. 未开启
     */
    protected Integer hasPallet;
    /**
     * 小车换向状态, 详见{@link DirectionStatus}
     */
    protected String directionStatus;

    protected Integer cargoTaskId;

    protected String taskType;

    protected String purpose;

    /**
     * 托盘循环
     */
    protected boolean palletLoop;
    /**
     * 换向循环
     */
    protected boolean reversLoop;
    /**
     * 空载循环
     */
    protected boolean unLoadedLoop;
    /**
     * 载货循环
     */
    protected boolean loadedLoop;
    /**
     * 移库循环
     */
    protected boolean transferLoop;

    /**
     * 小车类型
     */
    private Integer rgvType;
    /**
     * 穿梭车的电池信息
     */
    private RgvChargeInfo rgvChargeInfo;

    /**
     * res固件版本
     */
    private String resVersion;

}
